package com.qujia.station.service;

import com.qujia.common.core.domain.AjaxResult;
import com.qujia.station.domain.PayOrder;
import com.qujia.station.domain.PayOrderExport;
import com.qujia.station.domain.StatisticsPayOrder;

import java.util.List;
import java.util.Map;

/**
 * 订单支付Service接口
 *
 * @author qujia
 * @date 2020-12-10
 */
public interface IPayOrderHistoryService
{
    /**
     * 查询订单支付
     *
     * @param orderId 订单支付ID
     * @return 订单支付
     */
    public PayOrder selectPayOrderById(Long orderId);
    /**
     * 修改一段时间内的订单的金额
     *
     *
     */
    void updatePayOrderAmt(Map<String, Object> params);
    /**
     * 查询订单支付
     *
     * @param orderId 订单支付ID
     * @return 订单支付
     */
    public PayOrder selectPayOrderForFeiEById(Long orderId);

    /**
     * 查询订单支付列表
     *
     * @param payOrder 订单支付
     * @return 订单支付集合
     */
    public List<PayOrder> selectPayOrderList(PayOrder payOrder);
    /**
     * 查询总数
     *
     *
     * @return
     */
    public int getStatusCount(PayOrder payOrder);
    /**
     * 查询所有订单
     *
     * @param payOrder 订单支付
     * @return 订单支付集合
     */
    public List<PayOrder> selectAllPayOrderList(PayOrder payOrder);

    List<PayOrder> queryPayOrderHistoryList(PayOrder payOrder);

    /**
     * 新增订单支付
     *
     * @param payOrder 订单支付
     * @return 结果
     */
    public int insertPayOrder(PayOrder payOrder);

    /**
     * 修改订单支付
     *
     * @param payOrder 订单支付
     * @return 结果
     */
    public int updatePayOrder(PayOrder payOrder);

    /**
     * 批量删除订单支付
     *
     * @param orderIds 需要删除的订单支付ID
     * @return 结果
     */
    public int deletePayOrderByIds(Long[] orderIds);

    /**
     * 批量删除订单 逻辑删除
     * @return
     */
    public int deletePay(List<Long> list);

    /**
     * 删除订单支付信息
     *
     * @param orderId 订单支付ID
     * @return 结果
     */
    public int deletePayOrderById(Long orderId);



    /**
     * 查询当天的油品信息
     * @param payOrder
     * @return
     */
    public PayOrder selectDaySources(PayOrder payOrder);


    /**
     * 查询所有的订单信息
     * @param payOrder
     * @return
     */
    public PayOrder selectAllDaySources(PayOrder payOrder);

    /**
     * 按照油品分类获取数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectOilTypeSources(PayOrder payOrder);

    /**
     * 按照油品分类获取全部数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectAllOilTypeSources(PayOrder payOrder);

    /**
     * 收入数据概览，获取数据
     * @param payOrder
     * @return
     */
    public  PayOrder selectOverViewData(PayOrder payOrder);

    /**
     * 收入数据概览，获取数据（包括已经退款的信息）
     * @param payOrder
     * @return
     */
    public  PayOrder selectAllOverViewData(PayOrder payOrder);
    /**
     * 查询月报的订单信息
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectDayReport(PayOrder payOrder);
    /**
     * 查询月报的订单信息（包括已经退款的）
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectAllDayReport(PayOrder payOrder);




    /**
     * 日报折线图获取油品数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> listQydata(PayOrder payOrder);

    /**
     * 获取x轴数据
     * @param payOrder
     * @return
     */
    public List<PayOrder> listXdata(PayOrder payOrder);

    /**
     * 查询导出信息
     * @param payOrder
     * @return
     */
    public List<PayOrder> selectPayOrderExport(PayOrder payOrder);







    /**
     * 日报数据详情
     * @param payOrder
     * @return
     */
    public List<PayOrder> dayOilTypeSources(PayOrder payOrder);

    /**
     * 日报数据详情（包括已经退款的）
     * @param payOrder
     * @return
     */
    public List<PayOrder> dayAllOilTypeSources(PayOrder payOrder);



    /**
     * 关联用户查询订单支付列表
     */
    public List<PayOrder> selectUserPayOrderList(PayOrder payOrder);


    /**
     * 汇总订单统计信息
     * @param payOrder
     * @return
     */
    public PayOrder selectSumPayOrder(PayOrder payOrder);

    /**
     * 查询订单支付列表，包括提现金额
     *
     * @param payOrder 订单支付
     * @return 订单支付集合
     */
    public List<PayOrder> selectPayOrderAndWithdrawalAmountList(PayOrder payOrder);

    public List<PayOrderExport> selectPayOrderAndWithdrawalAmountExportList(PayOrder payOrder);


}
